package com.wannabuy.mobile.controler;

import android.app.Activity;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.wannabuy.mobile.R;
import com.wannabuy.mobile.cadastro.Fachada;
import com.wannabuy.mobile.controler.Sobre;
import com.wannabuy.mobile.controler.TarefaInterface;
import com.wannabuy.mobile.controler.TelaPrincipal;
import com.wannabuy.mobile.model.Comprador;
import com.wannabuy.mobile.util.MensagemSistema;

public class TelaInicial extends Activity implements TarefaInterface {
	private Button cmdLogar;
	private Button cmdSobre;
	private EditText etLogin;
	private EditText etSenha;

	private Comprador compradorLogado;
	private MensagemSistema retornoAcao;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_tela_inicial);
		cmdLogar = (Button) findViewById(R.id.cmdLogin);
		cmdSobre = (Button) findViewById(R.id.cmdSobre);
		etLogin = (EditText) findViewById(R.id.etLogin);
		etSenha = (EditText) findViewById(R.id.etSenha);
		navegacaoTelaInicial();

	}

	public void logar(View view) {
		// Gson gson = new Gson();
		// Tarefa tarefa = new Tarefa(this, this);
		// String retorno = tarefa.execute(etLogin.getText().toString(),
		// etSenha.getText().toString()).toString();
		// gson.fromJson(retorno, Comprador.class);
		AcessoDados dados = new AcessoDados();
		String login = etLogin.getText().toString();
		String senha = etSenha.getText().toString();
		if(login.equals("")){
			Toast.makeText(getApplicationContext(), "Favor informar o Login",Toast.LENGTH_LONG).show();
		}else
		if(senha.equals("")){
			Toast.makeText(getApplicationContext(), "Favor informar a Senha",Toast.LENGTH_LONG).show();	
		}
		if(!login.equalsIgnoreCase("") && !senha.equalsIgnoreCase("")){
		dados.execute(login, senha, "logar");
		}
	}

	public void navegacaoTelaInicial() {
		cmdLogar.setOnClickListener(new View.OnClickListener() {

			@Override
			public void onClick(View v) {
				logar(v);
			}
		});

		cmdSobre.setOnClickListener(new View.OnClickListener() {

			@Override
			public void onClick(View v) {
				Intent intent = new Intent(TelaInicial.this, Sobre.class);
				startActivity(intent);
			}
		});
	}

	// classe interna para possibilitar o acesso a dados e aos controles da tela
	// atual

	public class AcessoDados extends AsyncTask<String, String, String> {

		// private MensagemSistema estado=new MensagemSistema();

		@Override
		protected String doInBackground(String... params) {
			// TODO Auto-generated method stub
			String login = params[0];
			String senha = params[1];
			
			retornoAcao = Fachada.getInstancia().validarComprador(
					login, senha);
			
			if (retornoAcao.isResultado()) {
				compradorLogado = (Comprador) retornoAcao.getObjeto();
				return retornoAcao.getMensagem();
			}
			return null;
		}

		@Override
		protected void onPostExecute(String result) {
			if(retornoAcao.isResultado()){
				if(compradorLogado!=null){
					Intent intent = new Intent(TelaInicial.this,
							TelaPrincipal.class);
					//passamos o comprador como string
					GsonBuilder conversor=new GsonBuilder();
					conversor.setDateFormat("dd/MM/yyyy");
					String compradorString = conversor.create().toJson(compradorLogado);
					Bundle passagem = new Bundle();
					passagem.putString("usuario", compradorString);
					intent.putExtras(passagem);
					//executamos a activity
					startActivity(intent);
				}
			}else{
				Toast.makeText(getApplicationContext(), retornoAcao.getMensagem(),Toast.LENGTH_LONG).show();
			}
		}

	}

}
